import passport from 'koa-passport'
import LocalStrategy from 'passport-local'
import User from '../../dbs/models/user'

// 配置passport
passport.use(new LocalStrategy(async (username, password, done) => {
  // 查询用户是否存在
  const result = await User.findOne({
    email: username
  })
  if (result !== null) {
    // 如果结果不为空
    // 比对密码
    if (result.password === password) {
      return done(null, result)
    } else {
      return done(null, false, '用户名或者密码错误，请重新输入！')
    }
  } else {
    // 结果为空，证明用户不存在
    return done(null, false, '用户不存在！')
  }
}))

// 登陆成功把用户存储到session
passport.serializeUser((user, done) => {
  console.log('28...' + user)
  done(null, user)
})

// 反序列化
passport.deserializeUser((user, done) => {
  return done(null, user)
})

// 导出passport
export default passport
